const router = require('koa-router')()
const Person=require('../dbs/models/person.js');
const Redis=require('koa-redis'); 
const Store=new Redis().client;//新建redis客户端
router.prefix('/users')

router.get('/', function (ctx, next) {
  ctx.body = 'this is a users response!'
})

router.get('/bar', function (ctx, next) {
  ctx.body = 'this is a users/bar response'
})
//配合接口/addUser，完成数据的写入。
//因为是post请求，所以不能够在浏览器中输入。在终端，使用命令：curl -d 'name=lilei&age=18' http://localhost:3000/users/addUser
router.post('/addUser',async function(ctx){
   const person=new Person({
      name:ctx.request.body.name,
      age:ctx.request.body.age
   });
   let code;
   try {
      await person.save();//model中定义了save方法，将数据保存进schema
      code=0;//没有异常，code=0
   } catch (error) {
      code=-1;
   }
   ctx.body={
     code:code
   }
})
router.post('/getUser',async function (ctx) {
   const result=await Person.findOne({name:ctx.request.body.name});//查询第一个结果
   const results=await Person.find({name:ctx.request.body.name});//查询所有的结果
   ctx.body={
     code:0,
     result:result,
     results:results
   }
})
router.post('/updateUser',async function(ctx) {
   const result=await Person.where({name:ctx.request.body.name}).update({age:ctx.request.body.age});
   ctx.body={
     code:0
   }
})
router.post('/delUser',async function(ctx) {
   const result=await Person.where({name:ctx.request.body.name}).remove();
   ctx.body={
     code:0
   }
})
//不使用session，操作redis。
//在终端输入：curl http://localhost:3000/users/fix。然后在redis命令行输入：keys * ，发现key fix已经有了。
//数值存储后，如果想取出，使用命令hget,hget fix name
router.get('/fix',async function(ctx){
   const st=await Store.hset('fix','name',Math.random());
   ctx.body={
     code:0
   }
})
module.exports = router